/**
 * kb-matrix.h - 矩阵键盘 - 头文件
 * by Nixsawe <ziming_cool@126.com>
 * 2021-12-14 ~ 2022-1-16
 * 
 * 为了更方便地进行矩阵键盘按键的扫描，特封装此库
 * 所有的按键编码从 0 开始
 */

#ifndef __KB_MATRIX__
#define __KB_MATRIX__

#include<atmel/at89x52.h>
#include<intrins.h>

// 定义矩阵键盘所对应的端口
#define KBMTX_KEYS P1

// 存储线反转法扫描以及遍历式扫描的扫描结果
extern unsigned char kb_keys[16];

unsigned char kbHasKeyDown();
unsigned char kbIsKeyPressed(unsigned char k);
void kbRawTraversalScan();
void kbFastRawTraversalScan();
void kbTraversalScan();
void kbFastTraversalScan();
void kbCrossScan();
void kbFastCrossScan();
int kbCrossRead();

#endif	/* __KB_MATRIX__ */
